<?php
class RssParserAtom extends RssParser
{
	function Load( $text )
	{
		$feed=new RssFeed( );
		if (preg_match("/^.*?<title>(.+?)<\/title>/isu",&$text,$res))
		{
			$feed->title=$res[1];
		}
		//<link rel="self" href="http://www.google.com/reader/public/atom/user%2F11688875091266427245%2Fstate%2Fcom.google%2Fbroadcast"/>
		if (preg_match("/^.*?<link.+?rel=\"self\".+?href=\"(.*?)\".*?\/>/isu",$text,$res))
		{
			$feed->url=urldecode($res[1]);
		}
		if (preg_match("/^.*?<author><name>(.*?)<\/name><\/author>/isu",&$text,$res))
		{
			$feed->author=$res[1];
		}
		/*$urls=array();
		foreach ((array)$this->data as $k=>$v)
		{
			$urls[$v->url]=(object)array(
				'id'=>$v->id,
				'edited_date'=>$v->edited_date,
				'l'=>$k
			);
		}*/
		if (preg_match_all("/<entry(.*?)<\/entry>/is",$text,$res))
		{
			$result=true;
			/**
			 * рабираем ЭТО:
			 * <entry gr:crawl-timestamp-msec="1223681540660">
			 * 	<id gr:original-id="urn:lj:livejournal.com:atom1:pauel:171076">tag:google.com,2005:reader/item/3531dadd24c8d162</id>
			 * 	<category term="типаюмор"/>
			 * 	<title type="html">Знакомый по аське прислал</title>
			 * 	<published>2008-10-10T06:55:24Z</published>
			 * 	<updated>2008-10-10T06:55:24Z</updated>
			 * 	<link rel="alternate" href="http://pauel.livejournal.com/171076.html" type="text/html"/>
			 * 	<content xml:base="http://pauel.livejournal.com/" type="html">&lt;span&gt;10:59&lt;/span&gt; Задолбали! Знакомые бабы, близкие ли к финансам, далекие ли от&lt;br&gt;них, звонят и звонят с одним и тем же вопросом - "будет ли&lt;br&gt;дефолт". При этом сами плохо представляют себе, что это такое.&lt;br&gt;Сначала долго и нудно пояснял им, что дефолт - это всего лишь&lt;br&gt;полый или частичный отказ от выполнения своих обязательств в&lt;br&gt;установленный срок и в установленной форме. Приводил примеры про&lt;br&gt;то, как она берет у соседки в долг сто рублей до понедельника, но&lt;br&gt;в воскресенье предлагает вернуть их во вторник или полтиник&lt;br&gt;сразу, полтиник во вторник. Кивали, что понимают, но по&lt;br&gt;дальнейшим вопросам видел - нет, не понимают.&lt;br&gt;&lt;br&gt;Дело с мертвой точки сдвинулось лишь тогда, когда заменил базовый&lt;br&gt;актив. Вместо сторублевки появились супружеские обязанности. "-&lt;br&gt;Дорогая, давай трахнемся! - Нет, милый, болит голова. Давай&lt;br&gt;завтра!" - дефолт? Да, дефолт. Муж помер? Нет! Прибег к&lt;br&gt;рефинансированию дифицита ликвидности у стороннего кредитора&lt;br&gt;(трахнул соседку), временному закрытию дифицита ликвидности&lt;br&gt;аналогичным активом (подрочил), списал задолженость (взял водки,&lt;br&gt;сел у телека смотреть футбол).&lt;br&gt;&lt;br&gt;Или другой вариант: "- Дорогая, давай трахнемся!.. - Нет, милый,&lt;br&gt;так не хочу, но отсосу с удовольствием!". Технический дефолт? Да.&lt;br&gt;Но налицо договоренность о взаимовыгодной реструктуризации&lt;br&gt;задолженности. Вроде, все довольны...&lt;br&gt;&lt;br&gt;И что интересно - сразу все понимают! Сразу!!! Единственное, что&lt;br&gt;неприятно удивило, так это очень легкое отношение к проблемам&lt;br&gt;кредитора - попытка представить себе мужа в роли пострадавшего от&lt;br&gt;дефолта ни у кого не вызывает даже тени жалости!</content>
			 * 	<author gr:unknown-author="true">
			 * 		<name>(author unknown)</name>
			 * 	</author>
			 * 	<source gr:stream-id="feed/http://pauel.livejournal.com/data/atom">
			 * 		<id>tag:google.com,2005:reader/feed/http://pauel.livejournal.com/data/atom</id>
			 * 		<title type="html">pauel</title>
			 * 		<link rel="alternate" href="http://pauel.livejournal.com/" type="text/html"/>
			 * 	</source>
			 * </entry>
			 */
			$res=$res[0];
			foreach ((array)$res as $k=>$v)
			{
				//$atom=$this->parent->CreateAtom();
				$atom=new RssAtom( );
				if (preg_match("/<title.*?>(.*?)<\/title>/",$v,$r))
				{
					$atom->title=$r[1];
				}
				
				if (preg_match("/<content.*?>(.*?)<\/content>/isu",$v,$r))
				{
					$atom->body=html_entity_decode($r[1]);
				}
				elseif (preg_match("/<summary.*?>(.*?)<\/summary>/isu",$v,$r))
				{
					$atom->body=html_entity_decode( $r[1] );
				}
				
				if (preg_match("/<updated>(.*?)<\/updated>/isu",$v,$r))
				{
					$r[1]=preg_replace("/(T|Z)/"," ",$r[1]);
					$atom->date=strtotime( $r[1] );
				}
				if (preg_match("/.*?<link .*?href=\"(.*?)\".*?\/>/isu",$v,$r))
				{
					$atom->url=urldecode($r[1]);
				}
				if (preg_match_all("/<category term=\"(.*?)\"\/>/isu",$v,$r,PREG_PATTERN_ORDER))
				{
					foreach ($r[1] as $tag) $atom->AddTag($tag);
					//var_export($r);
				}
				/*if (preg_match("/<category term=\"(.*?)\"\/>/isu",$v,$r))
				{
					$atom->AddTag( $r[1] );
				}*/
				if (preg_match("/<source.*?>.*?<title.*?>(.*?)<\/title>.*?<\/source>/isu",$v,$r))
				{
					$atom->author=$r[1];
				}
				$atom->feed=&$feed;
				$feed->AddAtom($atom);
			}
			return $feed;
		}
		return false;
	}
}
?>